import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

//1.导入插件
import VuexPersistence from 'vuex-persist'
//2. 创建对象进行配置
const vuexLocal = new VuexPersistence({
  storage: window.localStorage,//配置存储介质，默认持久化到本地存储中
})

export default new Vuex.Store({
  // 阿里云
  /*   state: {
      token:'',
      user:{},
      cartList:[]
    },
    mutations: {
      stoken(state,data){
        state.token = data.token
        state.user = data
      },
      // 退出
      logout(state){
        state.token = ''
      },
      // 加入购物车操作
      addCart(state,cart){
        console.log(cart)
        // 判断 如果用户已经添加过 无需重复添加
        let index = state.cartList.findIndex(item=>{
          return item.id == cart.id
        })
        // 如果商品添加过
        if(index>-1){
          state.cartList[index].num += cart.num
        }else{
          state.cartList.push(cart)
        }
      }
    },
    actions: {
  
    }, */


  // 移动端
  state: {
    token: '',
    userInfo: {},
    cartList: [],
  },
  mutations: {
    stoken(state, data) {
      state.token = data.token,
        state.userInfo = data
    },

    // 退出
    logout(state) {
      state.token = ''
    },

    // 加入购物车
    addCart(state, cart) {
      console.log(cart)
      // 判断 如果商品已经添加过 无需重复添加 只需要数量叠加
      let index = state.cartList.findIndex(item => {
        return item.id == cart.id
      })
      // 商品已经添加过了
      if (index > -1) {
        state.cartList[index].num += cart.num
      } else {
        state.cartList.push(cart)
      }
    },
  },
  getters: {
    num(state) {
      let nums = 0;
      state.cartList.forEach(item => {
        if (item.checked == true) {
          nums += item.num
        }
      })
      return nums
    },
    pri(state) {
      let pris = 0;
      state.cartList.forEach(item => {
        if (item.checked == true) {
          pris += item.num * item.price
        }
      })
      return pris
    }
  },
  plugins: [vuexLocal.plugin],//引入插件
})
